Telecommunication systems use protocols to communicate, and communication protocols are basically a set of rules to that are followed in order for the telecommunication system to operate properly. Telecommunications system can include various types of systems, and can include communications between electronic devices. Example of such systems can include telephony and computer networks, and particular examples include the Internet and Public Switched Telephone Networks (PSTN). The designs of such systems are often presented as reference models, which may include a set of layers used to describe the functions of the system. Common reference models include a transport layer, which can be an abstract description of the layer responsible for getting data from one location to another with a transport protocol. Transport protocols enable the connection, communication, and data transfer between two endpoints.
Several different examples of transport protocols exist, and are often selected based on their support of features. For example, a transport protocol can support features such as message-based multi-streaming where the transport protocol can transport multiple independent messages in parallel within the same connection, association, or the like. An example protocol is Stream Controlled Transmission Protocol, or SCTP. Multi-streaming is in contrast to transport protocols that deliver messages in a byte stream sequentially such as one message at a time or in on stream including several messages multiplexed together. Some particular examples of telecommunication systems that benefit from multi-streaming include the Internet, PSTN, SS7 (or SIGTRAN, CCSS7, and C7) and others.
In an example process of transferring messages includes several features. Connections or associations between end points are established, and messages are sent between a logical sender to a logical receiver via a transport protocol. Data in the messages is processed sequentially, or linearly, at the transport layer and then de-multiplexed into different streams based on a stream identifier carried in the message. The different streams are then delivered to their respective application threads.
A difficulty of multi-streaming is that the independent streams are processed in a sequential manner, which reduces or altogether negates the benefit of having parallel streams in a connection or an association. A multi-streaming protocol can give the notion of data arriving on different streams for application, but bottlenecks occur when the messages are processed linearly at the transport protocol level.